package jwtx

import (
	"crypto/rsa"
	"github.com/golang-jwt/jwt/v5"
	"log"
	"os"
)

var (
	// 私钥用于签名JWT（从文件加载）
	SignKey   *rsa.PrivateKey // 私钥
	VerifyKey *rsa.PublicKey  // 公钥用于验证JWT（从文件加载）
)

// 加载公/私钥
func init() {
	// 加载私钥
	privateKeyBytes, err := os.ReadFile("../jwtx/private_key.pem")
	if err != nil {
		log.Panicln("加载私钥失败: " + err.Error())
	}
	SignKey, err = jwt.ParseRSAPrivateKeyFromPEM(privateKeyBytes)
	if err != nil {
		log.Panicln("解析私钥失败: " + err.Error())
	}

	// 加载公钥
	publicKeyBytes, err := os.ReadFile(`../jwtx/public_key.pem`)
	if err != nil {
		log.Panicln("加载公钥失败: " + err.Error())
	}
	VerifyKey, err = jwt.ParseRSAPublicKeyFromPEM(publicKeyBytes)
	if err != nil {
		log.Panicln("解析公钥失败: " + err.Error())
	}
}
